package card;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class CardDemo {
    private final String[] suits = {"♥","♠","♦","♣"};
    private final String[] ranks = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
    public List<Card> buyCard(){
        List<Card> cardList = new ArrayList<>();
        for(int i = 0; i < 4; i++)
        {
            for(int j = 0; j < 13; j++)
            {
                Card card = new Card(suits[i],ranks[j]);
                cardList.add(card);
            }
        }

        return cardList;
    }

    public void shuffle(List<Card> cardList)
    {
        Random random = new Random();
        for(int i = cardList.size() - 1; i > 0; i--)
        {
            int index = random.nextInt(i);
            swap(cardList,i,index);
        }
    }
    private void swap(List<Card> cardList,int a, int b)
    {
        Card tmp = cardList.get(a);
        cardList.set(a,cardList.get(b));
        cardList.set(b,tmp);
    }

    public List<List<Card>> getCard(List<Card> cardList)
    {
        List<Card> hand1 = new ArrayList<>();
        List<Card> hand2 = new ArrayList<>();
        List<Card> hand3 = new ArrayList<>();

        List<List<Card>> hands = new ArrayList<>();
        hands.add(hand1);
        hands.add(hand2);
        hands.add(hand3);

        for(int i = 0; i < 5; i++)
        {
            for(int j = 0; j < 3; j++)
            {
                Card card = cardList.remove(0);
                hands.get(j).add(card);
            }
        }
        hands.add(cardList);
        return hands;
    }
}
